#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QtGui/QMainWindow>
#include <QMap>
#include <QStringList>
#include <QComboBox>
#define MacOSX

namespace Ui
{
    class MainWindowClass;
}

typedef struct  {
        QString pic; // 第一張圖
        QString exam; // 題目的字
        QString classify; // 分類 數字
        QString etymon; // 選中的拆碼方式 數字
        QStringList etymonPics; // 選中的碼 對映的圖 數字
        QString explain; // 解釋
        QString correct; // 糾正
} exam ;

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = 0);
    ~MainWindow();

private slots:
    void on_actionExport_Exam_triggered();
    void on_actionSet_ExamFile_triggered();
    void on_etymons_currentIndexChanged(const QString &text );
    void on_lineEdit_textChanged(const QString & text );
    void on_actionFolder_triggered();
    void on_actionPrevious_triggered();
    void on_actionNext_triggered();
    void next();
    void previous();
    void gotoIndex();

private:
    Ui::MainWindowClass *ui;
    QComboBox * indexBox;
    QString folderName; // 圖片的目錄
    QString examFile;
    QMap < QString , QStringList > dictionary ; // 存放蝦米碼的陣列
    QMap < QString , QStringList > etymonPics ; // 存放字根圖的檔名(分類過後)
    QStringList picList ; // 存放字根圖的檔名
    QMap < QString , QString > examList ; // 存放題目列表
    QStringList classifly ; //存放分類
    int now;
    exam parserExam(const QString &line); // 讀取檔案的內容
    QString encoderExam(const exam & set);
    bool loadLiu();
    bool loadImageFolder(); // 建立 etymonPics examList
    bool loadExam();
    bool exportExam();
    inline void showEtymonPic(const QString &name);
    void clearItems();
    void setItems(const exam & current);
    void saveItems();
};

#endif // MAINWINDOW_H
